home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / demoversionen / timekeep / doc.txt / timekeep.txt < prev    next >
Text File  |  1995-03-09  |  33KB  |  1,011 lines

  1. TimeKeep Documentation
  2. ----------------------------------------------------------------------------
  3.                                 TimeKeep
  4.                                v 94.Oct.18
  5.  
  6.    Description 
  7.  
  8.    Shareware                             Tutorial 
  9.  
  10.    Development and Testing               Gadgets 
  11.  
  12.    Installing                            Client Name Codes 
  13.    Starting   
  14.                                          Invoice.rexx     
  15.    Configuration                         InvoiceText.rexx 
  16.                                          SoFar.rexx       
  17.    Error Messages      
  18.    Future Enhancements                   Programming Invoices 
  19.    Known BUGS          
  20.  
  21.                                          Legalness  
  22.                                          Thank Yous 
  23.    New in this version 
  24.    Previous versions                                  Locating The Author 
  25.  
  26.  
  27.                     TimeKeep is a time-clock utility
  28.               for keeping track of time spent on projects.
  29. ============================================================================
  30. Description
  31. ----------------------------------------------------------------------------
  32. Description
  33. -----------
  34.  
  35. TimeKeep is a time-clock utility for keeping track of time spent on
  36. projects for client billing on a per hour basis.
  37.  
  38. Clients and Projects can be defined and a time clock interface used to
  39. TimeIn and TimeOut on a selected project.  TimeKeep will remember which
  40. project is currently in progress and will select it automatically when
  41. the program is re-started.
  42.  
  43. In addition, TimeKeep has the ability to keep track of per hour rates and
  44. expenses for individual projects.  TimeKeep will create output files
  45. containing this information which can be used to create invoices.  As an
  46. example, ARexx scripts are included which will create invoices based on
  47. the TimeKeep datafiles.
  48.  
  49. This software could also be used for keeping track of hours spent on
  50. software development.  However, another utility is now available to
  51. better handle this type of TimeKeeping: TimeKeep-Dev.
  52. ============================================================================
  53. Shareware
  54. ----------------------------------------------------------------------------
  55. Shareware
  56. ---------
  57.  
  58. A great deal of time has been spent in the development of TimeKeep.
  59.  
  60. This version is SAVE disabled.  If you wish to receive a non-disabled
  61. version of TimeKeep, a Shareware fee of $15.00 (CANADIAN) or more is
  62. required.  Shareware fees of $20.00 (CANADIAN) or more will receive the
  63. next version automatically, at no additional charge.
  64. See:  Locating The Author 
  65.  
  66. Your shareware payment helps to insure continued development of TimeKeep.
  67. See:  Future Enhancements 
  68. ============================================================================
  69. Development and Testing
  70. ----------------------------------------------------------------------------
  71. Development and Testing
  72. -----------------------
  73.  
  74. TimeKeep was developed on an Amiga 3000T/25MHz with 2 Meg CHIP / 10 Meg
  75. FAST memory.
  76.  
  77. TimeKeep has been tested under Kickstart version 37.175, Workbench
  78. version 38.12.
  79. ============================================================================
  80. Installing
  81. ----------------------------------------------------------------------------
  82. Installing
  83. ----------
  84.  
  85. The following files should be contained in the same directory:
  86.  
  87.                               TimeKeep
  88.                               TimeKeep.info
  89.  
  90.  
  91. Sample .time file
  92. -----------------
  93.  
  94. TEST.time is provided for testing the ARexx programs included in this
  95. distribution.
  96.  
  97. Unmodified, the included ARexx scripts will look for TEST.time in the
  98. S:TimeKeep directory.  The first time you run TimeKeep, it will create
  99. this directory, if it does not already exist.  TEST.time should be copied
  100. into this directory.
  101. ============================================================================
  102. Starting
  103. ----------------------------------------------------------------------------
  104. Starting
  105. --------
  106.  
  107. From Workbench, double-click on the TimeKeep icon.
  108. ============================================================================
  109. Configuration
  110. ----------------------------------------------------------------------------
  111. Configuration
  112. -------------
  113.  
  114. TimeKeep supports configuration through use of Workbench ToolTypes.  If
  115. any options are not included as a ToolType, the stated defaults will be
  116. used.
  117.  
  118. ToolTypes can be typed in upper or lower case or any combination of the
  119. two.  To have a ToolType ignored surround it with brackets ( ).
  120.  
  121. For example:
  122.                             (ToolType=Value)
  123.  
  124.  
  125. Invalid settings and ToolTypes will be ignored.  In this case, the default
  126. values will be used.
  127.  
  128. The following configuration commands are supported:
  129.  
  130.   AutoClientNameCode=
  131.     Description: If set to YES, TimeKeep will automatically create a
  132.                  Client Name Code using its built-in function, when adding
  133.                  a new client.
  134.  
  135.                  See  Client Name Codes  for more information.
  136.  
  137.     Valid values: YES, NO
  138.  
  139.     Default: YES
  140.  
  141.     Example: AutoClientNameCode=NO
  142.  
  143.  
  144.   BackFillColor=
  145.     Description: Sets the palette color to use when filling the background
  146.                  A value of -1 will disable the fill.  Colors are numbered
  147.                  from 0 up.
  148.  
  149.                  For MagicWB users, a value of 4 is recommended.
  150.  
  151.                  TimeKeep's NewScreen is currently a 4 color screen,
  152.                  taking its palette from the Workbench.
  153.  
  154.     Valid values: -1, 0...(nColors-1)
  155.  
  156.     Default: -1
  157.  
  158.     Example: BackFillColor=4
  159.  
  160.  
  161.   Database=
  162.     Description: This is the FULL PATH and FILENAME of the data file
  163.                  created by TimeKeep.  This file is where TimeKeep stores
  164.                  Client and Project information.
  165.  
  166.     Default: "S:TimeKeep.data"
  167.  
  168.     Example: Database="CLIENTS:.INVOICES/.TimeKeep.data"
  169.  
  170.  
  171.   DataPath=
  172.     Description: This is the FULL PATH to where TimeKeep will create its
  173.                  .time files.  These files contain TimeIn and TimeOut
  174.                  information for generating invoices.
  175.  
  176.     Default: "S:TimeKeep"
  177.  
  178.     Example: DataPath="CLIENTS:.INVOICES/.TimeKeep"
  179.  
  180.  
  181.   DefaultProject=
  182.  
  183.     Description: This is the text to be used as the name of the default
  184.                  project.  When a new Client is added, a default project
  185.                  is automatically created.
  186.  
  187.     Default: "Miscellaneous"
  188.  
  189.     Example: DefaultProject="General"
  190.  
  191.  
  192.   Font=
  193.     Description: This is the name of an 8 point font to be used within
  194.                  TimeKeep.  Currently, only 8 point Proportional or
  195.                  Non-Proportional fonts are supported.
  196.  
  197.                  TimeKeep will use the Default System Font, regardless of
  198.                  size, for the window title bar, if opened on the Default
  199.                  Public Screen.  If you use a really large Default System
  200.                  Font, you may have problems with the error message
  201.                  display.  If this is a problem for you, try using the
  202.                  NewScreen option, and the Font option to set a smaller
  203.                  font.
  204.  
  205.     Valid values: Any 8 point, Proportional or Non-Proportional font.
  206.  
  207.     Default: "topaz.font"
  208.  
  209.     Example: Font="Topaz2p"
  210.  
  211.  
  212.   NewClientRate=
  213.     Description: This is the amount to use as the default Charge Rate when
  214.                  adding a new Client.
  215.  
  216.     Default: "0.00"
  217.  
  218.     Example: NewClientRate="20.00"
  219.  
  220.  
  221.   NewExpenseAmount=
  222.     Description: This is the amount to us as the default when adding a new
  223.                  Expense item.
  224.  
  225.     Default: "0.00"
  226.  
  227.     Example: NewExpenseAmount="10.00"
  228.  
  229.  
  230.   NewScreen=
  231.     Description: If set to YES, TimeKeep will open on its own Public
  232.                  Screen.
  233.  
  234.                  If set to NO, TimeKeep will open on the default Public
  235.                  Screen.
  236.  
  237.     Valid values: YES, NO
  238.  
  239.     Default: NO
  240.  
  241.     Example: NewScreen=YES
  242.  
  243.  
  244.   RoundMethod=
  245.     Description: This selects one of two built-in rounding methods.
  246.  
  247.                  If set to <|>, then the TimeIn function will round down
  248.                  to the nearest RoundMinutes value, and the TimeOut
  249.                  function will round up to the nearest RoundMinutes value.
  250.  
  251.                  If set to <>, then the TimeIn and TimeOut functions will
  252.                  round to the nearest RoundMinutes value.
  253.  
  254.     Valid values: <|>, <>
  255.  
  256.     Default: <|>
  257.  
  258.     Example: RoundMethod=<>
  259.  
  260.  
  261.   RoundMinutes=
  262.     Description: This sets the minutes value when rounding TimeIn and
  263.                  TimeOut.
  264.  
  265.                  If set to 1, this will cause the TimeIn and TimeOut
  266.                  functions to round to the nearest minute.  This value,
  267.                  in effect, disables rounding.
  268.  
  269.     Valid values: 1...60
  270.  
  271.     Default: 15
  272.  
  273.     Example: RoundMinutes=10
  274. ============================================================================
  275. Error Messages
  276. ----------------------------------------------------------------------------
  277. Error Messages
  278. --------------
  279.  
  280. Could Not Create Gadgets
  281.  
  282. - TimeKeep was not able to create its gadgets.
  283.  
  284. Could Not Lock Screen
  285.  
  286. - TimeKeep could not get a lock on a default public screen, or could not
  287.   get visual information from it.  TimeKeep may not have been able to find
  288.   Workbench or another public screen to open on.
  289.  
  290. Could Not Open Font
  291.  
  292. - TimeKeep was not able to locate, or open the requested font as an 8
  293.   point font.
  294.  
  295. Could Not Open Screen
  296.  
  297. - TimeKeep was not able to open its own screen.
  298.  
  299. Could Not Open Window
  300.  
  301. - TimeKeep was not able to open its window.
  302.  
  303. Insufficient Memory
  304.  
  305. - TimeKeep could not allocate memory to create its structures and lists.
  306.  
  307.  
  308. ERROR: Client Exists
  309.  
  310. - The Client Name already exists.  There can not be two clients with the
  311.   same name.
  312.  
  313. ERROR: Default Project can not be edited
  314.  
  315. - The name of the Default Project can not be edited.  It can only be set
  316.   globally using the DefaultProject Tooltype.
  317.  
  318. ERROR: Insufficient Memory
  319.  
  320. - There was not enough memory to perform the requested function.
  321.  
  322. ERROR: Invalid Client Code
  323.  
  324. - The Client Code already exists or has not been confirmed by pressing
  325.   ENTER within the Code gadget.  There can not be two Clients with the
  326.   same Client code.
  327.  
  328. ERROR: Project Exists
  329.  
  330. - The Project Name already exists.  There can not be two projects with the
  331.   same name.
  332.  
  333. ============================================================================
  334. Tutorial
  335. ----------------------------------------------------------------------------
  336. Tutorial
  337. --------
  338.  
  339. This tutorial will single-step you through the normal operation of
  340. TimeKeep.
  341.  
  342. The assumption is made that you have not changed any of the defaults
  343. through use of ToolTypes.
  344.  
  345.  
  346. ADDING A NEW CLIENT
  347. ===================
  348.  
  349. · Start TimeKeep by Double-Clicking on its icon.
  350.  
  351. When you use TimeKeep for the very first time, the only gadget that will
  352. be selectable is the ADD gadget, under the Client list requester.  If
  353. data had already been entered into TimeKeep, that data would now be
  354. displayed.
  355.  
  356. · Left-click on the ADD gadget under the Client list requester.
  357.  
  358. The Client Name string gadget is auto-selected.
  359.  
  360. · Type 'Test Number 1' {ENTER}
  361.  
  362. If you wish to abort ADDing, at any time click on the DELETE gadget.
  363.  
  364. The code 'TN1' is automatically entered into the CODE: string gadget and
  365. the gadget is auto-selected.
  366.  
  367. If the auto-created Code is satisfactory, just press {ENTER}.  If you
  368. wish to alter it, you may do so.  If you have set AutoClientNameCode to
  369. NO, the gadget will be empty, and you must enter a Code.  We will change
  370. the default Code...
  371.  
  372. · Type 'TN1' {ENTER}
  373.  
  374. The gadget should now contain 'TN1TN1'.
  375.  
  376. When adding a new client, TimeKeep will now automatically select the Rate
  377. string gadget.  It will contain the NewClientRate as set by the ToolType.
  378. You may edit the value if you wish.
  379.  
  380. · Type {ENTER}
  381.  
  382. 'Test Number 1' will now be added to the Client List and the default
  383. Project 'Miscellaneous' will be added to the Project List.  The default
  384. Project Rate will be set to the same as the Client Rate.  In most cases,
  385. the two rates will be the same.  If necessary, TimeKeep provides the
  386. ability to alter the Rate of each Project.
  387.  
  388.  
  389. ADDING A NEW PROJECT
  390. ====================
  391.  
  392. · Left-Click on the ADD gadget, under the Project List.
  393.  
  394. The Project Name string gadget is auto-selected.
  395.  
  396. · Type 'Project 2' {ENTER}
  397.  
  398. If you wish to abort ADDing, at any time click on the DELETE gadget.
  399.  
  400. 'Project 2' will now be added to the Project List.  The Project Rate will
  401. be set to the same as the Client Rate.  In most cases, the two rates will
  402. be the same.  If necessary, TimeKeep provides the ability to alter the
  403. Rate of each Project.
  404.  
  405.  
  406. KEEPING TRACK OF TIME
  407. =====================
  408.  
  409. When you are ready to start/continue work on a project, all you have to
  410. do is select the project (or add a new project) and TimeIn.
  411.  
  412. · Left-Click on the Time In gadget
  413.  
  414. The current time, rounded as set by the RoundMethod and RoundMinutes
  415. ToolTypes, will appear in the Time In string gadget.  If the Date and
  416. Time are satisfactory, you may continue.  If you wish to make changes
  417. you may do so by selecting the Date or Time string gadget and make
  418. changes followed by {ENTER}.
  419.  
  420.  
  421. TIMING-OUT OF A PROJECT IN PROGRESS
  422. ===================================
  423.  
  424. When you have already started a project using Time In, that project will
  425. be remembered the next time you start TimeKeep, and will be automatically
  426. selected.
  427.  
  428. If we were Exiting and Re-starting TimeKeep, the 'Project 2' project
  429. would be automatically selected since it now has a TimeIn.
  430.  
  431. · Left-Click on the Time Out gadget
  432.  
  433. The current time, rounded as set by the RoundMethod and RoundMinutes
  434. ToolTypes, will appear in the Time Out string gadget.  If the Time is
  435. satisfactory, you may continue.  If you wish to make changes you may
  436. do so by selecting the Time Out string gadget and make changes followed
  437. by {ENTER}.
  438.  
  439. TimeKeep does not allow time to be carried on over 24 hours. For this
  440. reason, changing the information in the Date string will change the Date
  441. for both Time In and Time Out.
  442.  
  443.  
  444. ADDING AN EXPENSE
  445. =================
  446.  
  447. · Left-Click on the ADD gadget in the Expenses box.
  448.  
  449. The program will automatically select the Expense Name string gadget.
  450.  
  451. · Type 'Expense 1' {ENTER}
  452.  
  453. The program will automatically enter the Expense Amount as set by the
  454. NewExpenseAmount ToolType and select the Expense Amount string gadget.
  455.  
  456. · Enter an amount of '14.35' {ENTER}
  457.  
  458. TimeKeep will enable the SAVE gadget to allow you save the entered
  459. expense.
  460.  
  461. · Left-Click on the SAVE gadget in the Expenses box.
  462.  
  463. The program will now update or create the .time file with the information
  464. entered.
  465.  
  466.  
  467. QUITTING
  468. ========
  469.  
  470. If you wish to save any changes you have made, you should click on SAVE
  471. or SAVE & QUIT.
  472.  
  473. · Left-Click on the QUIT gadget.
  474.  
  475.  
  476. END OF TUTORIAL
  477. ===============
  478. For further information about the use of TimeKeep see the  Gadgets 
  479. section.
  480. ============================================================================
  481. Gadgets
  482. ----------------------------------------------------------------------------
  483. Gadgets
  484. -------
  485.  
  486. So Far:
  487. -------
  488.   This gadget displays the dollar value of time spent on projects for the
  489.   currently selected client.  It is calculated as:
  490.  
  491.      (<TimeOut> - <TimeIn>) * <CurrentProjectRate> + <CurrentValue>
  492.  
  493.   The following information may also be appear:
  494.  
  495.        ??????       The amount is unknown at this time.
  496.        ------       The amount has been altered, but not saved yet.
  497.  
  498.  
  499. Code:
  500. -----
  501.   This gadget displays the current Client Name Code.
  502.  
  503.   If the AutoClientNameCode tooltype is activated, pressing 'HELP' within
  504.   this gadget will re-invoke the builtin feature.  This can be useful if
  505.   you accidentally change the contents of this gadget and are not
  506.   familiar with the method used to determine the Client Name Code.  If
  507.   AutoClientNameCode is not activated, pressing 'HELP' will clear this
  508.   gadget.
  509. ============================================================================
  510. Client Name Codes
  511. ----------------------------------------------------------------------------
  512. Client Name Codes
  513. -----------------
  514.  
  515. Client Name Codes can be a maximum of 6 characters long.
  516.  
  517. TimeKeep has a built-in function to automatically create Client Name
  518. Codes.  At present, it simply combines the first letter of each word in
  519. the Client name.
  520.  
  521. If you have a method of creating Name Codes that you would like to see
  522. supported, contact the author.  See:  Locating The Author 
  523.  
  524. This feature can be enabled or disabled using the AutoClientNameCode
  525. ToolType.
  526.  
  527.  
  528. Applicable Configuration Commands:
  529.  
  530.                             AutoClientNameCode 
  531. ============================================================================
  532. Invoice.rexx
  533. ----------------------------------------------------------------------------
  534. Invoice.rexx
  535. ------------
  536.  
  537. The included utility INVOICE.REXX is a Final Writer script for generating
  538. invoices and keeping track of invoice numbers.
  539.  
  540. Invoice.rexx takes TimeKeep's .time files as input and supports Time
  541. and Expense information.
  542.  
  543.  
  544. Modifications should be made to Invoice.rexx to set it up for your system.
  545.  
  546.  
  547. Modifying Invoice.rexx
  548. ----------------------
  549.  
  550. LINE 12:
  551.                           DataPath = "S:TimeKeep"
  552.  
  553.   This definition should be identical to the DataPath ToolType definition.
  554.   It is released with the default DataPath used by TimeKeep.  So, a change
  555.   here may not be necessary.
  556.  
  557.  
  558. LINES 273, 275, 277:
  559.                            'Type' "<Name>"
  560.                            'Type' "<Address>"
  561.                            'Type' "<Phone Number>"
  562.  
  563.   These lines enter the 'Payment To' information at the bottom of the
  564.   invoice.  Substitute your mailing information within the "".
  565.  
  566.  
  567. FONT:
  568.                   'Font' "AvantGarde_Bold"; 'FontSize' 24
  569.  
  570.   Throughout the program you will find the above font and fontsize
  571.   commands.  These can be modified to use whatever fonts and fontsizes
  572.   you wish to use.  There are currently 19 occurances of this command
  573.   line.
  574.  
  575.  
  576. Starting Invoice.rexx
  577. ---------------------
  578.  
  579. To use the ARexx script with Final Writer, assign it to a Menu or Button
  580. using the USER MENU or USER BUTTON STRIP preferences -OR- Use the
  581. USER/OTHER/AREXX SCRIPT menu selection to execute it.
  582.  
  583. A sample .time file is included with this distribution.
  584. See:  Installing  for more information.
  585.  
  586.  
  587. Using Invoice.rexx
  588. ------------------
  589.  
  590. Invoice.rexx assumes a method of invoice numbering as follows: Invoice
  591. numbers are Client dependent.  The first invoice for each client is
  592. numbered 1, and following invoices are incremented by 1.  Invoice numbers
  593. are created as <ClientNameCode>##.  For example: SDT01.
  594.  
  595. When first started, Invoice.rexx will prompt the user for a Client Name
  596. Code.  Invoice.rexx will look in the directory defined by the 'DataPath'
  597. variable for a <ClientNameCode>.time file.  To try the TEST.time file,
  598. enter TEST.
  599.  
  600. If Invoice.rexx finds a .time file for the entered Client Name Code, it
  601. will then look for a <ClientNameCode>.invoice file.  This file contains
  602. the invoice number of the last created invoice.  It will be created by
  603. Invoice.rexx if it is not found and will, initially, contain a 1.  This
  604. is a simple text file, containing a number followed by a carriage return.
  605.  
  606. If Invoice.rexx can not find a .time file for the entered Client Name
  607. Code it will inform you and exit.
  608.  
  609. Invoice.rexx will then proceed to create an invoice.  This will take a
  610. few seconds, because FinalWriter's ARexx support is not as good as it
  611. could be, and lacks support for some very necessary features.  Be
  612. patient, it is worth it.
  613.  
  614. Invoice.rexx creates 2 or 3 sections within the invoice: WORK, EXPENSES,
  615. and WORK HOURS.  If no expenses are found in the data file, the EXPENSES
  616. section will not be included.  If no time information is found, the WORK
  617. section will not be included.
  618.  
  619. Upon completing the invoice, Invoice.rexx will position the cursor after
  620. the first project in the WORK section.  This section is used for giving a
  621. decription of the kind of work done on each project.  This must be
  622. entered by the user, as Invoice.rexx and TimeKeep do not keep track of
  623. this information.
  624.  
  625.  
  626. If Invoice.rexx Does Not Meet Your Needs
  627. ----------------------------------------
  628.  
  629. If Invoice.rexx does not fully, or even partially, meet your invoicing
  630. needs and you are not able to modify Invoice.rexx suitably on your own,
  631. registered users may contact the author.  See:  Locating The Author 
  632.  
  633. If you have programming experience, you can refer to the
  634.  Programming Invoices  section for programming information to assist in
  635. developing your own Invoicing utility.
  636. ============================================================================
  637. InvoiceText.rexx
  638. ----------------------------------------------------------------------------
  639. InvoiceText.rexx
  640. ----------------
  641.  
  642. The included utility INVOICETEXT.REXX is an ARexx program for generating
  643. invoices and keeping track of invoice numbers.
  644.  
  645. InvoiceText.rexx takes TimeKeep's .time files as input and supports Time
  646. and Expense information.
  647.  
  648. A sample .time file is included with this distribution.
  649. See:  Installing  for more information.
  650.  
  651.  
  652. Modifications should be made to InvoiceText.rexx to set it up for your
  653. system.
  654.  
  655.  
  656. Modifying InvoiceText.rexx
  657. --------------------------
  658.  
  659. LINE 12:
  660.                          DataPath = "S:TimeKeep"
  661.  
  662.   This definition should be identical to the DataPath ToolType definition.
  663.   It is released with the default DataPath used by TimeKeep.  So, a change
  664.   here may not be necessary.
  665.  
  666. LINE 104: (note: this line has been divided to fit within this text)
  667.  
  668.               call open('Out', DataPath"/TimeKeep/Invoice.
  669.                     "Client.NameCode''Client.Invoice, 'W')
  670.  
  671.   This line opens the output file.  To redirect the output to somewhere
  672.   else, modify this line.  I do not recommend any other changes to this
  673.   line, if you are not an experienced ARexx programmer.
  674.  
  675.   For example, to redirect output to RAM: change this line to:
  676.  
  677.     call open('Out', "RAM:Invoice."Client.NameCode''Client.Invoice, 'W')
  678.  
  679. LINES 195, 196, 197:
  680.  
  681.                   call writeln('Out', "<Name>")
  682.                   call writeln('Out', "<Address>")
  683.                   call writeln('Out', "<Phone Number>")
  684.  
  685.   These lines enter the 'Payment To' information at the bottom of the
  686.   invoice.  Substitute your mailing information within the "".
  687.  
  688.  
  689. Starting InvoiceText.rexx
  690. -------------------------
  691.  
  692. From a SHELL or CLI type:
  693.  
  694.                        RX InvoiceText <ClientCode>
  695.  
  696.  
  697. InvoiceText.rexx takes only one parameter, a ClientCode.
  698.  
  699. For example:
  700.  
  701.                            RX InvoiceText TEST
  702.  
  703.  
  704. Using InvoiceText.rexx
  705. ----------------------
  706.  
  707. InvoiceText.rexx assumes a method of invoice numbering as follows:
  708. Invoice numbers are Client dependent.  The first invoice for each client
  709. is numbered 1, and following invoices are incremented by 1.  Invoice
  710. numbers are created as <ClientNameCode>##.  For example: SDT01.
  711.  
  712. InvoiceText.rexx accepts a Client Name Code from the command line.
  713. InvoiceText.rexx will look in the directory defined by the 'DataPath'
  714. variable for a <ClientNameCode>.time file.  To try the TEST.time file,
  715. enter TEST.
  716.  
  717. If InvoiceText.rexx finds a .time file for the entered Client Name Code,
  718. it will then look for a <ClientNameCode>.invoice file.  This file
  719. contains the invoice number of the last created invoice.  It will be
  720. created by InvoiceText.rexx if it is not found and will, initially,
  721. contain a 1.  This is a simple text file, containing a number followed by
  722. a carriage return.
  723.  
  724. If InvoiceText.rexx can not find a .time file for the entered Client Name
  725. Code it will inform you and exit.
  726.  
  727. InvoiceText.rexx will then proceed to create an invoice.  Without
  728. modification, InvoiceText.rexx will output a file in RAM: with the name:
  729.  
  730.                    Invoice.<ClientNameCode><Invoice#>
  731.  
  732. InvoiceText.rexx creates 1 to 3 sections within the invoice: WORK,
  733. EXPENSES, and WORK HOURS.  If no expenses are found in the data file, the
  734. EXPENSES section will not be included.  If no time information is found,
  735. the WORK and TIME sections will not be included.
  736.  
  737. Upon completing the invoice, InvoiceText.rexx will position the cursor
  738. after the first project in the WORK section.  This section is used for
  739. giving a decription of the kind of work done on each project.  This must
  740. be entered by the user, as InvoiceText.rexx and TimeKeep do not keep
  741. track of this information.
  742.  
  743.  
  744. If InvoiceText.rexx Does Not Meet Your Needs
  745. --------------------------------------------
  746.  
  747. If InvoiceText.rexx does not fully, or even partially, meet your
  748. invoicing needs and you are not able to modify InvoiceText.rexx suitably
  749. on your own, registered users may contact the author.
  750. See:  Locating The Author 
  751.  
  752. If you have programming experience, you can refer to the
  753.  Programming Invoices  section for programming information to assist in
  754. developing your own Invoicing utility.
  755. ============================================================================
  756. SoFar.rexx
  757. ----------------------------------------------------------------------------
  758. SoFar.rexx
  759. ----------
  760.  
  761. The included utility SoFar.REXX is a shell script for getting Expense,
  762. Work and Total values for work in progress.
  763.  
  764. SoFar.rexx takes TimeKeep's .time files as input and supports Time
  765. and Expense information.
  766.  
  767. A sample .time file is included with this distribution.
  768. See:  Installing  for more information.
  769.  
  770.  
  771. Modifications should be made to SoFar.rexx to set it up for your system.
  772.  
  773.  
  774. Modifying SoFar.rexx
  775. --------------------
  776.  
  777. LINE 10:
  778.                           DataPath = "S:TimeKeep"
  779.  
  780.   This definition should be identical to the DataPath ToolType definition.
  781.   It is released with the default DataPath used by TimeKeep.  So, a change
  782.   here may not be necessary.
  783.  
  784.  
  785. Using SoFar.rexx
  786. ----------------
  787.  
  788. From a SHELL or CLI type:
  789.  
  790.                            RX SoFar <ClientCode>
  791.  
  792.  
  793. SoFar.rexx takes only one parameter, a ClientCode.
  794.  
  795. For example:
  796.  
  797.                                RX SoFar TEST
  798. ============================================================================
  799. Programming Invoices
  800. ----------------------------------------------------------------------------
  801. Programming Invoices
  802. --------------------
  803.  
  804. If you write your own TimeKeep invoicing utility for Final Writer or any
  805. other software, please send a copy to the author for inclusion with this
  806. distribution.  See:  Locating The Author 
  807.  
  808.  
  809. .time File Format
  810. -----------------
  811.  
  812. This is the format of the .time data file created by TimeKeep.  See
  813. TEST.time, included in this distribution, for an example.
  814.  
  815.  
  816. LINE 1:
  817.                     "<ClientNameCode>","<ClientName>"
  818.  
  819.   example:
  820.                         "TEST1","This is Test #1"
  821.  
  822.  
  823. LINE 2...n:
  824.  
  825.   "T","<Project>","<DateIn>","<TimeIn>","<TimeOut>","<Hours>","<Rate>"
  826.  
  827.                                  - OR -
  828.  
  829.                  "E","<Project>","<Expense>","<Amount>"
  830.  
  831.   where:
  832.  
  833.   "T" = Time Information
  834.  
  835.      <Project> = Project name
  836.      <DateIn>  = Time In date
  837.      <TimeIn>  = Time In time
  838.      <TimeOut> = Time Out time
  839.      <Hours>   = TimeOut - TimeIn (hours)
  840.      <Rate>    = Project hourly rate
  841.  
  842.   "E" = Expense Information
  843.  
  844.      <Project> = Project name
  845.      <Expense> = Expense name
  846.      <Amount>  = Expense amount
  847.  
  848.  
  849.   examples:
  850.  
  851.      "T","Test Project","May 16","12:15 PM","1:00 PM","0.75","15.00"
  852.  
  853.               "E","Test Project2","This is an Expense","7.77"
  854. ============================================================================
  855. Legalness
  856. ----------------------------------------------------------------------------
  857. Legalness
  858. ---------
  859.  
  860. TimeKeep is copyright ©1994 by Scotware\Software.  With the exception of
  861. the ARexx utilities, the files included with this distribution may not be
  862. altered in any way.  TimeKeep is released as Shareware - You are required
  863. to pay a  Shareware  fee if you continue to use this software beyond a
  864. trial period of 10 days.
  865.  
  866. The software concept and design remain the property of the author,
  867. scott dhomas trenn and Scotware\Software.
  868.  
  869. Permission is granted for this program to appear in any public domain
  870. software archives.
  871.  
  872. Permission is granted for this program to appear on any commercial disks
  873. or CDROMs, provided that a single copy of the first product, containing
  874. this version of this progam, is sent to the author.
  875.  
  876. The author is in no way liable for any damage resulting from the use of
  877. this program.
  878. ============================================================================
  879. Future Enhancements
  880. ----------------------------------------------------------------------------
  881. Future Enhancements
  882. -------------------
  883.  
  884. -  Nettwork support, Multi-user
  885. -  Larger font support
  886. -  Definable Client Code function
  887. -  Busy pointer
  888. -  Select InProgress button gadget
  889. -  Cancel TimeIn/TimeOut button gadgets
  890. -  Enhance Invoice.rexx: File Requester, Move default Project to top of
  891.    project list, etc.
  892. -  Built-in Invoicing???
  893. -  Runnable from CLI
  894. -  and MORE...
  895. ============================================================================
  896. Known BUGS
  897. ----------------------------------------------------------------------------
  898. Known BUGS
  899. ----------
  900.  
  901. - In Progress counter is not completely working.
  902. ============================================================================
  903. Locating The Author
  904. ----------------------------------------------------------------------------
  905. Locating The Author
  906. -------------------
  907.  
  908. If you like this program and would like to register, reward me for my
  909. efforts, or for bug reports, program ideas, or questions, or just to tell
  910. me about where you live.
  911.  
  912. I can be contacted through INTERNET EMAIL at:
  913.  
  914.  
  915.                       dhomas@jupiter.sun.csd.unb.ca
  916.  
  917. Or by MAIL at:
  918.                             scott dhomas trenn
  919.                             Scotware\Software
  920.                            797 Mitchell Street
  921.                              Fredericton, NB
  922.                              CANADA  E3B 3S8
  923.  
  924.  
  925. Registered users may send me $5.00 (CANADIAN) and a disk, for the latest
  926. version of this software.
  927.  
  928. Be sure to include the version number you are currently using, and the
  929. name of the program you want, so I do not send you a version you already
  930. have or a program you do not want.  The version number can be found in the
  931. titlebar,  at the top of this documentation file, or by typing:
  932.  
  933.                             Version TimeKeep
  934.  
  935. at a shell prompt.  It looks similar to     94.Oct.15
  936.  
  937. When reporting bugs or errors generated when you run TimeKeep, please
  938. include any error messages given by TimeKeep and also the version number
  939. you are using.  This will aid me in tracking down the problem. Thank-you.
  940.  
  941. If you have an EMAIL address please include that with your letter.
  942. ============================================================================
  943. Thank Yous
  944. ----------------------------------------------------------------------------
  945. Thank Yous
  946. ----------
  947.  
  948. Thanks to the following people for beta-testing, suggestions, bug reports
  949. and support:
  950.  
  951. - Greg Perry           - Ashgrove, Qld               AUSTRALIA
  952. - Troy Morehouse       - Fredericton, New Brunswick  CANADA
  953. - Nickey MacDonald     - Fredericton, New Brunswick  CANADA
  954.  
  955.                                                             - dhomas trenn
  956. ============================================================================
  957. New in this version
  958. ----------------------------------------------------------------------------
  959. New In This Version
  960. -------------------
  961.  
  962. - Modified UnRegistered version to allow partial saving.  This should make
  963.   it easier to decide if you want to get the full registered version.
  964.  
  965. - Added 'Cancel' TimeIn/TimeOut gadget.
  966.  
  967. - Background color is set to the BackFillColor tooltype setting, for
  968.   (Un)Registered text.
  969.  
  970. - Invoice.rexx: Fixed missing quotes.
  971.  
  972. - InvoiceText.rexx: Fixed missing quotes.
  973. ============================================================================
  974. Previous versions
  975. ----------------------------------------------------------------------------
  976. New In Version 94.Oct.15
  977. ------------------------
  978.  
  979. - Added 'Client SoFar' to keep track of current amounts.
  980.  
  981. - Invoice.rexx: Updated to support 'Client SoFar'.
  982.  
  983. - Fixed bug in GetTime function when using RoundMethod = "<|>".
  984.  
  985. - Added InvoiceText.rexx for generating ASCII text Invoices.  These text
  986.   files can be imported into programs that do not support ARexx or
  987.   provide other means of importing TimeKeep invoices.
  988.  
  989.  
  990. New In Version 94.Jul.26
  991. ------------------------
  992.  
  993. - Fixed Enforcer hits in the Add Client routine.
  994.  
  995. - TimeKeep now also creates the empty .time file for a client, if it does
  996.   not already exist, when an expense is added.
  997.  
  998. - Invoice.rexx: Removed a line that did nothing.
  999.  
  1000. - Invoice.rexx: Work section is no longer added if no time information is
  1001.   found.
  1002.  
  1003. - Added SoFar.rexx.
  1004.  
  1005.  
  1006. New In Version 94.Jun.16
  1007. ------------------------
  1008.  
  1009. - First Release
  1010. ============================================================================
  1011.